package org.geekbang.work9;

import java.io.Closeable;
import java.util.EventObject;

/**
 * 分布式事件发送.
 * @author leo
 * @date 2021/8/29
 * @since 1.0.0
 */
public interface DistributedEventPublisher extends Closeable {

    /**
     * 功能: 发布消息.
     * @author leo
     * @date 2021/8/29
     * @param source target source
    */
    void publish(Object source);

    /**
     * 功能: 增加监听.
     * @author leo
     * @date 2021/8/29
     * @param listener {@link EventObjectListener}
     *
    */
    void addListener(EventObjectListener<EventObject> listener);

    /**
     * 释放资源
     */
    default void close(){

    }
}
